1. Field of the Invention
The present invention relates to systems and methods for converting progressive scanned images, such as non-interlaced computer graphics RGB (red-green-blue) data, into signals that are compatible with interlaced formats, such as interlaced television input formats. More particularly, the present invention relates to systems and methods for scaling images in computer resolution formats into television resolution formats and for reducing flicker in interlaced television images converted from non-interlaced computer graphics data.
2. Description of Related Art
In the early years of personal computers (PCs), many PCs used televisions (TVs) as display devices. As resolution requirements for PCs increased, however, specialized monitors were developed for display of high resolution PC graphics. PC monitors and TVs became distinct electronic devices having distinct format standards with little connection.
Applications now exist where it is desirable for a PC to be capable of using a TV as a display device for computer graphics. One application for TV output signals is for use in business presentations where a large screen TV may be preferred to show PC graphics (with or without text) to a large audience. There is also a need for low-cost home-use PCs that may utilize a TV for displaying PC graphics. In addition, emerging new TV services, such as multi-media TV, interactive TV and internet services require TVs to display PC graphics. The divergence of PC graphics standards (e.g., VGA, SVGA, etc.) and TV standards (e.g. NTSC, PAL, SECAM, etc.), however, make displaying PC graphics on TVs rather complicated. Because of the difference in standards, it is necessary to process PC graphics data before it is encoded to a TV signal by regular TV encoders.
To make this conversion, PC graphics may need to be scaled so that the resolution of the PC graphics image will match the resolution used by the TV. Scaling is desirable so that little or no information is lost at the edge of the TV screen. For example, consider converting PC graphics in 640.times.480 VGA format (640 pixels horizontally across, 480 pixels vertically down) into a 64033 400 NTSC TV format. Unless the PC graphics image is scaled to the TV format resolution, only part of the PC graphics image will be visible on the TV screen. This result is unacceptable because needed information, such as icons or menus, may be out of the range of the TV screen and be unavailable to the user. Thus, it is desirable and typically necessary for graphics processing circuitry within a PC to be capable of scaling the PC graphics image to match a desired TV resolution format.
To convert PC graphics to a TV display format, it is also typically necessary to convert from a non-interlaced signal to an interlaced signal. This is so because PC graphics standards adopt a non-interlaced, progressive scan format, while TV standards adopt an interlaced scan format. This interlacing conversion, however, often creates flicker problems in the converted image. For example, PC graphics standards provide for non-interlaced graphics that may be refreshed at a relatively high refresh rate, such as 60 Hz or more, to guarantee no perceptible flicker. In contrast, many TV standards provide a much lower frame refresh rate, such as 30/25 Hz for the NTSC/PAL format. Further, the fact that typical PC graphics include high contrast vertical neighboring pixels (e.g., single-pixel horizontal lines or edges) may result in the lines or edges appearing in only one of the two fields after interlacing of the PC graphics. This leads to the lines or edges being refreshed only once per frame. Because NTSC/PAL operates at a frame rate of 30/25 Hz, the refresh rate for such single-pixel horizontal lines or edges may only be 30/25 Hz, which is not sufficient for the human eye to perceive them as flicker-free. In making interlacing conversions, therefore, it is desirable to implement flicker reduction to reduce the amount of flicker introduced through the non-interlaced to interlace conversion process.
Various prior scaling and flicker reduction techniques have been utilized. Prior scaling implementations have typically been to apply weighted averages to neighboring image pixels to scale the PC graphics image both vertically and horizontally to match the TV resolution format. Prior flicker reduction implementations have utilized a scan converter having frame storage capabilities. While this frame-based flicker reduction may produce high quality TV images, as well as have extra flexibility in its graphics interface requirements, it is not cost-efficient due to the large size required on a silicon device to provide frame storage. Flicker reduction implementations have also used methods that limit the graphics sources. Such methods, for example, may limit each display point on a line of an interlaced field to be vertically paired with the point on the vertically neighboring line of the next field. Other flicker reduction implementations have used low-pass filters to filter out vertical high frequency components of original graphics to generate relatively smooth vertical contrast between neighboring pixels. This low-pass filtering process may include line averaging or a similar technique. A fractional control coefficient has also been applied as a function of predetermined conditions of vertically adjacent pixel values to adjust the value provided by the low-pass filter.
Various disadvantages are associated with these prior scaling and flicker reduction implementations. For example, prior scaling implementations suffer from the disadvantage of requiring large silicon areas for the line buffers required to accomplish the scaling function. Prior flicker reduction implementations suffer from the disadvantage of being unable to adequately handle flicker in images having widely varying pixel conditions, such as mixed images that include text, continuous tone signals, and graphics. Furthermore, prior flicker reduction implementations do not account for horizontal and vertical pixel conditions within the image, which each may significantly affect flicker in a converted image.
What is needed is an improved scaling and flicker reduction implementation that is capable of scaling images from one resolution to another without requiring large silicon areas, that is capable of adequately handling flicker in mixed images, and that is capable of taking into account horizontal as well as vertical pixel conditions in reducing flicker.